/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.ucase.casemain.service;

import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseRelatedAppDocumentPageQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseRelatedDocumentDelDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseRelatedDocumentSaveDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.DocumentCatalogQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseRelatedAppDocumentVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseStageLinkRelateDocumentVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.DocumentCatalogInfoVo;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.CaseRelateDocumentInfoDto;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述: 案件关联文书记录表 case_related_document_record 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年06月17日
 */
public interface ICaseRelatedDocumentRecordService extends BaseService {
    /**
     * 描述：根据当事人和办案人查询关联文书
     *
     * @param queryDto 查询dto
     * @return {@link List <CaseRelatedAppDocumentVo> }
     * @author shishengyao
     * @date 2022/06/17
     */
    List<CaseRelatedAppDocumentVo> getCanRelatedDocumentListByPartyAndHandle(CaseRelatedAppDocumentPageQueryDto queryDto);

    /**
     * 描述：获取文书类型列表
     *
     * @param queryDto 查询dto
     * @return {@link List< DocumentCatalogInfoVo > }
     * @author shishengyao
     * @date 2022/06/17
     */
    List<DocumentCatalogInfoVo> getDocumentCatalogList(DocumentCatalogQueryDto queryDto);

    /**
     * 描述：获取文书类型列表
     *
     * @param saveDto 保存dto
     * @return int
     * @author shishengyao
     * @date 2022/06/20
     */
    int saveCaseRelatedDocument(CaseRelatedDocumentSaveDto saveDto);


    /**
     * 描述：获取通过"关联文书"渠道的案件关联文书信息
     *
     * @param caseId 案件id
     * @return List<CaseStageLinkRelateDocumentVo> 转换后的案件阶段关联文书信息
     * @author xiangyuyu
     * @date 2022-06-29 20:43
     */
    List<CaseStageLinkRelateDocumentVo> getRelatedDocInfoToCaseStageLinkRelateDocument(String caseId);

    /**
     * 描述：根据
     *
     * @param caseId 用例id
     * @return int
     * @author shishengyao
     * @date 2022/06/30
     */
    int deleteCaseRelatedDocumentByCaseId(String caseId);

    /**
     * 描述：删除案件关联文书
     *
     * @param delDto 文书id
     * @return int
     * @author zhangqiang
     * @date 2022-08-28
     */
    int delCaseRelatedDocument(CaseRelatedDocumentDelDto delDto);

    /**
     * 得到相关文档信息dto
     *
     * @param caseId           用例id
     * @param documentKindCode 文件类型代码
     * @param caseStageCode    情况下阶段代码
     * @return {@link List<CaseRelateDocumentInfoDto> }
     * @author shishengyao
     * @date 2023/08/17
     */
    List<CaseRelateDocumentInfoDto> getCaseRelateDocumentInfoDto(String caseId ,String documentKindCode,String caseStageCode);

    /**
     * 描述：删除简案快办关联文书
     *
     * @param caseId      用例id
     * @param relatedType 相关的类型
     * @return int
     * @author shishengyao
     * @date 2023/08/30
     */
    int delFastCaseRelatedDocument(String caseId , String relatedType,String documentKindCode,String documentId);
}
